Unix-based configuration management lacks a local configuration API. Without such an API, programmatic configuration changes and higher-level configuration services such as configuration daemons and remote configuration API's are based on ad-hoc mechanisms that are fragile and hard to develop and maintain. At the same time, the main culprit for this situation, that configuration data is generally stored in configuration files in a wide variety of formats, is both an important part of the Linux culture and valuable when humans need to make configuration changes manually.
Changing configuration files on Unix-style machines from scripts/programs is extremely hard and error prone because the formats and conventions of those files varies widely from file to file.